Replace "#ifdef Rel14" by "#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))"
We can build Rel15 for LTE now
This commit is contained in:
@@ -290,7 +290,7 @@ set(protobuf_generated_dir ${OPENAIR_BIN_DIR})
|
|||||||
# RRC
|
# RRC
|
||||||
######
|
######
|
||||||
|
|
||||||
add_list2_option(RRC_ASN1_VERSION "Rel14" "ASN.1 version of RRC interface" "Rel8" "Rel10" "Rel14" "CBA")
|
add_list2_option(RRC_ASN1_VERSION "Rel15" "ASN.1 version of RRC interface" "Rel8" "Rel10" "Rel14" "CBA")
|
||||||
|
|
||||||
if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
|
if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
|
||||||
make_version(RRC_VERSION 8 6 0)
|
make_version(RRC_VERSION 8 6 0)
|
||||||
@@ -316,7 +316,7 @@ elseif (${RRC_ASN1_VERSION} STREQUAL "Rel14")
|
|||||||
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1)
|
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1)
|
||||||
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel15")
|
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel15")
|
||||||
make_version(RRC_VERSION 15 2 2)
|
make_version(RRC_VERSION 15 2 2)
|
||||||
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1)
|
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-36331-f22.asn)
|
||||||
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
|
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
|
||||||
add_definitions(-DRRC_VERSION=${RRC_VERSION})
|
add_definitions(-DRRC_VERSION=${RRC_VERSION})
|
||||||
set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION})
|
set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION})
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ VCD_TIMING="False"
|
|||||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
|
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
|
||||||
CPU_AFFINITY_FLAG_USER="False" #Only valid when lowlatecy flag is set to False
|
CPU_AFFINITY_FLAG_USER="False" #Only valid when lowlatecy flag is set to False
|
||||||
REL="Rel14"
|
REL="Rel15"
|
||||||
NR_REL="NR_Rel15"
|
NR_REL="NR_Rel15"
|
||||||
HW="None"
|
HW="None"
|
||||||
TP="None"
|
TP="None"
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ typedef struct {
|
|||||||
/// codeword this transport block is mapped to
|
/// codeword this transport block is mapped to
|
||||||
uint8_t codeword;
|
uint8_t codeword;
|
||||||
#ifdef PHY_TX_THREAD
|
#ifdef PHY_TX_THREAD
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// indicator that this DLSCH corresponds to SIB1-BR, needed for c_init for scrambling
|
/// indicator that this DLSCH corresponds to SIB1-BR, needed for c_init for scrambling
|
||||||
uint8_t sib1_br_flag;
|
uint8_t sib1_br_flag;
|
||||||
/// initial absolute subframe (see 36.211 Section 6.3.1), needed for c_init for scrambling
|
/// initial absolute subframe (see 36.211 Section 6.3.1), needed for c_init for scrambling
|
||||||
|
|||||||
+22
-22
@@ -300,7 +300,7 @@ typedef struct RU_proc_t_s {
|
|||||||
int subframe_tx;
|
int subframe_tx;
|
||||||
/// subframe to act upon for reception of prach
|
/// subframe to act upon for reception of prach
|
||||||
int subframe_prach;
|
int subframe_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// subframe to act upon for reception of prach BL/CE UEs
|
/// subframe to act upon for reception of prach BL/CE UEs
|
||||||
int subframe_prach_br;
|
int subframe_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -312,7 +312,7 @@ typedef struct RU_proc_t_s {
|
|||||||
int frame_tx_unwrap;
|
int frame_tx_unwrap;
|
||||||
/// frame to act upon for reception of prach
|
/// frame to act upon for reception of prach
|
||||||
int frame_prach;
|
int frame_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// frame to act upon for reception of prach
|
/// frame to act upon for reception of prach
|
||||||
int frame_prach_br;
|
int frame_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -323,7 +323,7 @@ typedef struct RU_proc_t_s {
|
|||||||
int instance_cnt_FH;
|
int instance_cnt_FH;
|
||||||
/// \internal This variable is protected by \ref mutex_prach.
|
/// \internal This variable is protected by \ref mutex_prach.
|
||||||
int instance_cnt_prach;
|
int instance_cnt_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// \internal This variable is protected by \ref mutex_prach.
|
/// \internal This variable is protected by \ref mutex_prach.
|
||||||
int instance_cnt_prach_br;
|
int instance_cnt_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -342,7 +342,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_t pthread_FH;
|
pthread_t pthread_FH;
|
||||||
/// pthread structure for RU prach processing thread
|
/// pthread structure for RU prach processing thread
|
||||||
pthread_t pthread_prach;
|
pthread_t pthread_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// pthread structure for RU prach processing thread BL/CE UEs
|
/// pthread structure for RU prach processing thread BL/CE UEs
|
||||||
pthread_t pthread_prach_br;
|
pthread_t pthread_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -362,7 +362,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_attr_t attr_FH;
|
pthread_attr_t attr_FH;
|
||||||
/// pthread attributes for RU prach
|
/// pthread attributes for RU prach
|
||||||
pthread_attr_t attr_prach;
|
pthread_attr_t attr_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// pthread attributes for RU prach BL/CE UEs
|
/// pthread attributes for RU prach BL/CE UEs
|
||||||
pthread_attr_t attr_prach_br;
|
pthread_attr_t attr_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -378,7 +378,7 @@ typedef struct RU_proc_t_s {
|
|||||||
struct sched_param sched_param_FH;
|
struct sched_param sched_param_FH;
|
||||||
/// scheduling parameters for RU prach thread
|
/// scheduling parameters for RU prach thread
|
||||||
struct sched_param sched_param_prach;
|
struct sched_param sched_param_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// scheduling parameters for RU prach thread BL/CE UEs
|
/// scheduling parameters for RU prach thread BL/CE UEs
|
||||||
struct sched_param sched_param_prach_br;
|
struct sched_param sched_param_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -390,7 +390,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_cond_t cond_FH;
|
pthread_cond_t cond_FH;
|
||||||
/// condition variable for RU prach thread
|
/// condition variable for RU prach thread
|
||||||
pthread_cond_t cond_prach;
|
pthread_cond_t cond_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// condition variable for RU prach thread BL/CE UEs
|
/// condition variable for RU prach thread BL/CE UEs
|
||||||
pthread_cond_t cond_prach_br;
|
pthread_cond_t cond_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -408,7 +408,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_mutex_t mutex_FH;
|
pthread_mutex_t mutex_FH;
|
||||||
/// mutex for RU prach
|
/// mutex for RU prach
|
||||||
pthread_mutex_t mutex_prach;
|
pthread_mutex_t mutex_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// mutex for RU prach BL/CE UEs
|
/// mutex for RU prach BL/CE UEs
|
||||||
pthread_mutex_t mutex_prach_br;
|
pthread_mutex_t mutex_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -444,7 +444,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
int subframe_rx;
|
int subframe_rx;
|
||||||
/// subframe to act upon for PRACH
|
/// subframe to act upon for PRACH
|
||||||
int subframe_prach;
|
int subframe_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// subframe to act upon for reception of prach BL/CE UEs
|
/// subframe to act upon for reception of prach BL/CE UEs
|
||||||
int subframe_prach_br;
|
int subframe_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -454,7 +454,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
int frame_tx;
|
int frame_tx;
|
||||||
/// frame to act upon for PRACH
|
/// frame to act upon for PRACH
|
||||||
int frame_prach;
|
int frame_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// frame to act upon for PRACH BL/CE UEs
|
/// frame to act upon for PRACH BL/CE UEs
|
||||||
int frame_prach_br;
|
int frame_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -464,7 +464,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
int instance_cnt_te;
|
int instance_cnt_te;
|
||||||
/// \internal This variable is protected by \ref mutex_prach.
|
/// \internal This variable is protected by \ref mutex_prach.
|
||||||
int instance_cnt_prach;
|
int instance_cnt_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// \internal This variable is protected by \ref mutex_prach for BL/CE UEs.
|
/// \internal This variable is protected by \ref mutex_prach for BL/CE UEs.
|
||||||
int instance_cnt_prach_br;
|
int instance_cnt_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -488,7 +488,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
pthread_attr_t attr_single;
|
pthread_attr_t attr_single;
|
||||||
/// pthread attributes for prach processing thread
|
/// pthread attributes for prach processing thread
|
||||||
pthread_attr_t attr_prach;
|
pthread_attr_t attr_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// pthread attributes for prach processing thread BL/CE UEs
|
/// pthread attributes for prach processing thread BL/CE UEs
|
||||||
pthread_attr_t attr_prach_br;
|
pthread_attr_t attr_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -502,7 +502,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
struct sched_param sched_param_single;
|
struct sched_param sched_param_single;
|
||||||
/// scheduling parameters for prach thread
|
/// scheduling parameters for prach thread
|
||||||
struct sched_param sched_param_prach;
|
struct sched_param sched_param_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// scheduling parameters for prach thread
|
/// scheduling parameters for prach thread
|
||||||
struct sched_param sched_param_prach_br;
|
struct sched_param sched_param_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -514,7 +514,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
pthread_t pthread_te;
|
pthread_t pthread_te;
|
||||||
/// pthread structure for PRACH thread
|
/// pthread structure for PRACH thread
|
||||||
pthread_t pthread_prach;
|
pthread_t pthread_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// pthread structure for PRACH thread BL/CE UEs
|
/// pthread structure for PRACH thread BL/CE UEs
|
||||||
pthread_t pthread_prach_br;
|
pthread_t pthread_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -524,7 +524,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
pthread_cond_t cond_te;
|
pthread_cond_t cond_te;
|
||||||
/// condition variable for PRACH processing thread;
|
/// condition variable for PRACH processing thread;
|
||||||
pthread_cond_t cond_prach;
|
pthread_cond_t cond_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// condition variable for PRACH processing thread BL/CE UEs;
|
/// condition variable for PRACH processing thread BL/CE UEs;
|
||||||
pthread_cond_t cond_prach_br;
|
pthread_cond_t cond_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -536,7 +536,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
pthread_mutex_t mutex_te;
|
pthread_mutex_t mutex_te;
|
||||||
/// mutex for PRACH thread
|
/// mutex for PRACH thread
|
||||||
pthread_mutex_t mutex_prach;
|
pthread_mutex_t mutex_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// mutex for PRACH thread for BL/CE UEs
|
/// mutex for PRACH thread for BL/CE UEs
|
||||||
pthread_mutex_t mutex_prach_br;
|
pthread_mutex_t mutex_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -552,7 +552,7 @@ typedef struct eNB_proc_t_s {
|
|||||||
int RU_mask;
|
int RU_mask;
|
||||||
/// mask for RUs serving eNB (PRACH)
|
/// mask for RUs serving eNB (PRACH)
|
||||||
int RU_mask_prach;
|
int RU_mask_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// mask for RUs serving eNB (PRACH)
|
/// mask for RUs serving eNB (PRACH)
|
||||||
int RU_mask_prach_br;
|
int RU_mask_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -752,7 +752,7 @@ typedef struct RU_t_s{
|
|||||||
int (*wakeup_rxtx)(struct PHY_VARS_eNB_s *eNB, struct RU_t_s *ru);
|
int (*wakeup_rxtx)(struct PHY_VARS_eNB_s *eNB, struct RU_t_s *ru);
|
||||||
/// function pointer to wakeup routine in lte-enb.
|
/// function pointer to wakeup routine in lte-enb.
|
||||||
void (*wakeup_prach_eNB)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
void (*wakeup_prach_eNB)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// function pointer to wakeup routine in lte-enb.
|
/// function pointer to wakeup routine in lte-enb.
|
||||||
void (*wakeup_prach_eNB_br)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
void (*wakeup_prach_eNB_br)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
||||||
#endif
|
#endif
|
||||||
@@ -977,14 +977,14 @@ typedef struct PHY_VARS_eNB_s {
|
|||||||
nfapi_cqi_indication_raw_pdu_t cqi_raw_pdu_list[NFAPI_CQI_IND_MAX_PDU];
|
nfapi_cqi_indication_raw_pdu_t cqi_raw_pdu_list[NFAPI_CQI_IND_MAX_PDU];
|
||||||
/// NFAPI PRACH information
|
/// NFAPI PRACH information
|
||||||
nfapi_preamble_pdu_t preamble_list[MAX_NUM_RX_PRACH_PREAMBLES];
|
nfapi_preamble_pdu_t preamble_list[MAX_NUM_RX_PRACH_PREAMBLES];
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// NFAPI PRACH information BL/CE UEs
|
/// NFAPI PRACH information BL/CE UEs
|
||||||
nfapi_preamble_pdu_t preamble_list_br[MAX_NUM_RX_PRACH_PREAMBLES];
|
nfapi_preamble_pdu_t preamble_list_br[MAX_NUM_RX_PRACH_PREAMBLES];
|
||||||
#endif
|
#endif
|
||||||
Sched_Rsp_t Sched_INFO;
|
Sched_Rsp_t Sched_INFO;
|
||||||
LTE_eNB_PDCCH pdcch_vars[2];
|
LTE_eNB_PDCCH pdcch_vars[2];
|
||||||
LTE_eNB_PHICH phich_vars[2];
|
LTE_eNB_PHICH phich_vars[2];
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
LTE_eNB_EPDCCH epdcch_vars[2];
|
LTE_eNB_EPDCCH epdcch_vars[2];
|
||||||
LTE_eNB_MPDCCH mpdcch_vars[2];
|
LTE_eNB_MPDCCH mpdcch_vars[2];
|
||||||
LTE_eNB_PRACH prach_vars_br;
|
LTE_eNB_PRACH prach_vars_br;
|
||||||
@@ -1016,7 +1016,7 @@ typedef struct PHY_VARS_eNB_s {
|
|||||||
uint32_t lte_gold_mbsfn_table[10][3][42];
|
uint32_t lte_gold_mbsfn_table[10][3][42];
|
||||||
|
|
||||||
uint32_t X_u[64][839];
|
uint32_t X_u[64][839];
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
uint32_t X_u_br[4][64][839];
|
uint32_t X_u_br[4][64][839];
|
||||||
#endif
|
#endif
|
||||||
uint8_t pbch_configured;
|
uint8_t pbch_configured;
|
||||||
@@ -1587,7 +1587,7 @@ typedef struct RRU_config_s {
|
|||||||
int prach_FreqOffset[MAX_BANDS_PER_RRU];
|
int prach_FreqOffset[MAX_BANDS_PER_RRU];
|
||||||
/// prach_ConfigIndex for IF4p5
|
/// prach_ConfigIndex for IF4p5
|
||||||
int prach_ConfigIndex[MAX_BANDS_PER_RRU];
|
int prach_ConfigIndex[MAX_BANDS_PER_RRU];
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
int emtc_prach_CElevel_enable[MAX_BANDS_PER_RRU][4];
|
int emtc_prach_CElevel_enable[MAX_BANDS_PER_RRU][4];
|
||||||
/// emtc_prach_FreqOffset for IF4p5 per CE Level
|
/// emtc_prach_FreqOffset for IF4p5 per CE Level
|
||||||
int emtc_prach_FreqOffset[MAX_BANDS_PER_RRU][4];
|
int emtc_prach_FreqOffset[MAX_BANDS_PER_RRU][4];
|
||||||
|
|||||||
+10
-10
@@ -127,7 +127,7 @@ typedef struct RU_proc_t_s {
|
|||||||
int subframe_tx;
|
int subframe_tx;
|
||||||
/// subframe to act upon for reception of prach
|
/// subframe to act upon for reception of prach
|
||||||
int subframe_prach;
|
int subframe_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// subframe to act upon for reception of prach BL/CE UEs
|
/// subframe to act upon for reception of prach BL/CE UEs
|
||||||
int subframe_prach_br;
|
int subframe_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -139,7 +139,7 @@ typedef struct RU_proc_t_s {
|
|||||||
int frame_tx_unwrap;
|
int frame_tx_unwrap;
|
||||||
/// frame to act upon for reception of prach
|
/// frame to act upon for reception of prach
|
||||||
int frame_prach;
|
int frame_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// frame to act upon for reception of prach
|
/// frame to act upon for reception of prach
|
||||||
int frame_prach_br;
|
int frame_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -151,7 +151,7 @@ typedef struct RU_proc_t_s {
|
|||||||
int instance_cnt_FH1;
|
int instance_cnt_FH1;
|
||||||
/// \internal This variable is protected by \ref mutex_prach.
|
/// \internal This variable is protected by \ref mutex_prach.
|
||||||
int instance_cnt_prach;
|
int instance_cnt_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// \internal This variable is protected by \ref mutex_prach.
|
/// \internal This variable is protected by \ref mutex_prach.
|
||||||
int instance_cnt_prach_br;
|
int instance_cnt_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -174,7 +174,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_t pthread_FH1;
|
pthread_t pthread_FH1;
|
||||||
/// pthread structure for RU prach processing thread
|
/// pthread structure for RU prach processing thread
|
||||||
pthread_t pthread_prach;
|
pthread_t pthread_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// pthread structure for RU prach processing thread BL/CE UEs
|
/// pthread structure for RU prach processing thread BL/CE UEs
|
||||||
pthread_t pthread_prach_br;
|
pthread_t pthread_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -197,7 +197,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_attr_t attr_FH1;
|
pthread_attr_t attr_FH1;
|
||||||
/// pthread attributes for RU prach
|
/// pthread attributes for RU prach
|
||||||
pthread_attr_t attr_prach;
|
pthread_attr_t attr_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// pthread attributes for RU prach BL/CE UEs
|
/// pthread attributes for RU prach BL/CE UEs
|
||||||
pthread_attr_t attr_prach_br;
|
pthread_attr_t attr_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -216,7 +216,7 @@ typedef struct RU_proc_t_s {
|
|||||||
struct sched_param sched_param_FH1;
|
struct sched_param sched_param_FH1;
|
||||||
/// scheduling parameters for RU prach thread
|
/// scheduling parameters for RU prach thread
|
||||||
struct sched_param sched_param_prach;
|
struct sched_param sched_param_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// scheduling parameters for RU prach thread BL/CE UEs
|
/// scheduling parameters for RU prach thread BL/CE UEs
|
||||||
struct sched_param sched_param_prach_br;
|
struct sched_param sched_param_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -229,7 +229,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_cond_t cond_FH1;
|
pthread_cond_t cond_FH1;
|
||||||
/// condition variable for RU prach thread
|
/// condition variable for RU prach thread
|
||||||
pthread_cond_t cond_prach;
|
pthread_cond_t cond_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// condition variable for RU prach thread BL/CE UEs
|
/// condition variable for RU prach thread BL/CE UEs
|
||||||
pthread_cond_t cond_prach_br;
|
pthread_cond_t cond_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -251,7 +251,7 @@ typedef struct RU_proc_t_s {
|
|||||||
pthread_mutex_t mutex_FH1;
|
pthread_mutex_t mutex_FH1;
|
||||||
/// mutex for RU prach
|
/// mutex for RU prach
|
||||||
pthread_mutex_t mutex_prach;
|
pthread_mutex_t mutex_prach;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// mutex for RU prach BL/CE UEs
|
/// mutex for RU prach BL/CE UEs
|
||||||
pthread_mutex_t mutex_prach_br;
|
pthread_mutex_t mutex_prach_br;
|
||||||
#endif
|
#endif
|
||||||
@@ -383,7 +383,7 @@ typedef struct RU_t_s{
|
|||||||
void (*wakeup_prach_eNB)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
void (*wakeup_prach_eNB)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
||||||
|
|
||||||
void (*wakeup_prach_gNB)(struct PHY_VARS_gNB_s *gNB,struct RU_t_s *ru,int frame,int subframe);
|
void (*wakeup_prach_gNB)(struct PHY_VARS_gNB_s *gNB,struct RU_t_s *ru,int frame,int subframe);
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// function pointer to wakeup routine in lte-enb.
|
/// function pointer to wakeup routine in lte-enb.
|
||||||
void (*wakeup_prach_eNB_br)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
void (*wakeup_prach_eNB_br)(struct PHY_VARS_eNB_s *eNB,struct RU_t_s *ru,int frame,int subframe);
|
||||||
#endif
|
#endif
|
||||||
@@ -511,7 +511,7 @@ typedef struct RRU_config_s {
|
|||||||
int prach_FreqOffset[MAX_BANDS_PER_RRU];
|
int prach_FreqOffset[MAX_BANDS_PER_RRU];
|
||||||
/// prach_ConfigIndex for IF4p5
|
/// prach_ConfigIndex for IF4p5
|
||||||
int prach_ConfigIndex[MAX_BANDS_PER_RRU];
|
int prach_ConfigIndex[MAX_BANDS_PER_RRU];
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
int emtc_prach_CElevel_enable[MAX_BANDS_PER_RRU][4];
|
int emtc_prach_CElevel_enable[MAX_BANDS_PER_RRU][4];
|
||||||
/// emtc_prach_FreqOffset for IF4p5 per CE Level
|
/// emtc_prach_FreqOffset for IF4p5 per CE Level
|
||||||
int emtc_prach_FreqOffset[MAX_BANDS_PER_RRU][4];
|
int emtc_prach_FreqOffset[MAX_BANDS_PER_RRU][4];
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ typedef struct {
|
|||||||
PRACH_CONFIG_INFO prach_ConfigInfo;
|
PRACH_CONFIG_INFO prach_ConfigInfo;
|
||||||
} PRACH_CONFIG_COMMON;
|
} PRACH_CONFIG_COMMON;
|
||||||
|
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
|
|
||||||
/// PRACH-eMTC-Config from 36.331 RRC spec
|
/// PRACH-eMTC-Config from 36.331 RRC spec
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -150,7 +150,7 @@ typedef struct {
|
|||||||
/// prach_Config_enabled=1 means enabled. \vr{[0..1]}
|
/// prach_Config_enabled=1 means enabled. \vr{[0..1]}
|
||||||
uint8_t prach_Config_enabled;
|
uint8_t prach_Config_enabled;
|
||||||
/// PRACH Configuration Information
|
/// PRACH Configuration Information
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
PRACH_eMTC_CONFIG_INFO prach_ConfigInfo;
|
PRACH_eMTC_CONFIG_INFO prach_ConfigInfo;
|
||||||
#endif
|
#endif
|
||||||
} PRACH_eMTC_CONFIG_COMMON;
|
} PRACH_eMTC_CONFIG_COMMON;
|
||||||
@@ -602,7 +602,7 @@ typedef struct {
|
|||||||
uint8_t nb_antenna_ports_eNB;
|
uint8_t nb_antenna_ports_eNB;
|
||||||
/// PRACH_CONFIG
|
/// PRACH_CONFIG
|
||||||
PRACH_CONFIG_COMMON prach_config_common;
|
PRACH_CONFIG_COMMON prach_config_common;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// PRACH_eMTC_CONFIG
|
/// PRACH_eMTC_CONFIG
|
||||||
PRACH_eMTC_CONFIG_COMMON prach_emtc_config_common;
|
PRACH_eMTC_CONFIG_COMMON prach_emtc_config_common;
|
||||||
#endif
|
#endif
|
||||||
@@ -1232,7 +1232,7 @@ typedef struct {
|
|||||||
int32_t **prach_ifft[4];
|
int32_t **prach_ifft[4];
|
||||||
|
|
||||||
/// repetition number
|
/// repetition number
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// indicator of first frame in a group of PRACH repetitions
|
/// indicator of first frame in a group of PRACH repetitions
|
||||||
int first_frame[4];
|
int first_frame[4];
|
||||||
/// current repetition for each CE level
|
/// current repetition for each CE level
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
|
|||||||
rlc_status =
|
rlc_status =
|
||||||
mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP,
|
mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP,
|
||||||
ENB_FLAG_YES, MBMS_FLAG_NO, lc_id, 0
|
ENB_FLAG_YES, MBMS_FLAG_NO, lc_id, 0
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -1244,7 +1244,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
|||||||
|
|
||||||
if (TBS - ta_len - header_len_dcch > 0) {
|
if (TBS - ta_len - header_len_dcch > 0) {
|
||||||
rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH, (TBS - ta_len - header_len_dcch)
|
rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH, (TBS - ta_len - header_len_dcch)
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
); // transport block set size
|
); // transport block set size
|
||||||
@@ -1260,7 +1260,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
|||||||
(char *)
|
(char *)
|
||||||
&dlsch_buffer
|
&dlsch_buffer
|
||||||
[0]
|
[0]
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -1349,7 +1349,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
|||||||
// check for DCCH1 and update header information (assume 2 byte sub-header)
|
// check for DCCH1 and update header information (assume 2 byte sub-header)
|
||||||
if (TBS - ta_len - header_len_dcch - sdu_length_total > 0) {
|
if (TBS - ta_len - header_len_dcch - sdu_length_total > 0) {
|
||||||
rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH + 1, (TBS - ta_len - header_len_dcch - sdu_length_total)
|
rlc_status = mac_rlc_status_ind(module_idP, rnti, module_idP, frameP, subframeP, ENB_FLAG_YES, MBMS_FLAG_NO, DCCH + 1, (TBS - ta_len - header_len_dcch - sdu_length_total)
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
); // transport block set size less allocations for timing advance and
|
); // transport block set size less allocations for timing advance and
|
||||||
@@ -1365,7 +1365,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
|||||||
(char *)
|
(char *)
|
||||||
&dlsch_buffer
|
&dlsch_buffer
|
||||||
[sdu_length_total]
|
[sdu_length_total]
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -1427,7 +1427,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
|||||||
header_len_dcch -
|
header_len_dcch -
|
||||||
sdu_length_total -
|
sdu_length_total -
|
||||||
header_len_dtch
|
header_len_dtch
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -1446,7 +1446,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
|||||||
*)
|
*)
|
||||||
&dlsch_buffer
|
&dlsch_buffer
|
||||||
[sdu_length_total]
|
[sdu_length_total]
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0, 0
|
,0, 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -2851,7 +2851,7 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
|
|||||||
get_TBS_UL(UE_template->mcs_UL[harq_pid],
|
get_TBS_UL(UE_template->mcs_UL[harq_pid],
|
||||||
rb_table[rb_table_index])
|
rb_table[rb_table_index])
|
||||||
);
|
);
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation
|
if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation
|
||||||
fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_index],
|
fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_index],
|
||||||
UE_template->rach_resource_type>2 ? 2 : 1,
|
UE_template->rach_resource_type>2 ? 2 : 1,
|
||||||
@@ -2997,7 +2997,7 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
|
|||||||
0, // n_srs
|
0, // n_srs
|
||||||
UE_template->TBS_UL[harq_pid]
|
UE_template->TBS_UL[harq_pid]
|
||||||
);
|
);
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation
|
if (UE_template->rach_resource_type>0) { // This is a BL/CE UE allocation
|
||||||
fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_index],
|
fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_index],
|
||||||
UE_template->rach_resource_type>2 ? 2 : 1,
|
UE_template->rach_resource_type>2 ? 2 : 1,
|
||||||
|
|||||||
@@ -67,13 +67,13 @@ void handle_nr_rach(NR_UL_IND_t *UL_info) {
|
|||||||
UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.preamble,
|
UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.preamble,
|
||||||
UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance,
|
UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance,
|
||||||
UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti
|
UL_info->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0
|
,0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
if (UL_info->rach_ind_br.rach_indication_body.number_of_preambles>0) {
|
if (UL_info->rach_ind_br.rach_indication_body.number_of_preambles>0) {
|
||||||
|
|
||||||
AssertFatal(UL_info->rach_ind_br.rach_indication_body.number_of_preambles<5,"More than 4 preambles not supported\n");
|
AssertFatal(UL_info->rach_ind_br.rach_indication_body.number_of_preambles<5,"More than 4 preambles not supported\n");
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ typedef struct{
|
|||||||
/// RACH indication list
|
/// RACH indication list
|
||||||
nfapi_rach_indication_t rach_ind;
|
nfapi_rach_indication_t rach_ind;
|
||||||
|
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
/// RACH indication list for BR UEs
|
/// RACH indication list for BR UEs
|
||||||
nfapi_rach_indication_t rach_ind_br;
|
nfapi_rach_indication_t rach_ind_br;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -3426,15 +3426,15 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname)
|
|||||||
|
|
||||||
UE_EUTRA_Capability->accessStratumRelease = 0;//AccessStratumRelease_rel8;
|
UE_EUTRA_Capability->accessStratumRelease = 0;//AccessStratumRelease_rel8;
|
||||||
UE_EUTRA_Capability->ue_Category = 4;
|
UE_EUTRA_Capability->ue_Category = 4;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0001=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0001_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0002=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0002_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0003=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0003_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0004=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0004_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0006=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0006_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0101=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0101_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0102=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0102_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0103=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0103_r15=0;
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0104=0;
|
UE_EUTRA_Capability->pdcp_Parameters.supportedROHC_Profiles.profile0x0104_r15=0;
|
||||||
|
|
||||||
UE_EUTRA_Capability->pdcp_Parameters.maxNumberROHC_ContextSessions = &maxNumberROHC_ContextSessions;
|
UE_EUTRA_Capability->pdcp_Parameters.maxNumberROHC_ContextSessions = &maxNumberROHC_ContextSessions;
|
||||||
|
|
||||||
|
|||||||
@@ -551,7 +551,7 @@ static void* gNB_thread_prach( void* param ) {
|
|||||||
|
|
||||||
LOG_D(PHY,"Running gNB prach procedures\n");
|
LOG_D(PHY,"Running gNB prach procedures\n");
|
||||||
prach_procedures(gNB
|
prach_procedures(gNB
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0
|
,0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -982,7 +982,7 @@ static void* ru_thread_prach( void* param ) {
|
|||||||
/*if (ru->gNB_list[0]){
|
/*if (ru->gNB_list[0]){
|
||||||
prach_procedures(
|
prach_procedures(
|
||||||
ru->gNB_list[0]
|
ru->gNB_list[0]
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0
|
,0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -995,7 +995,7 @@ static void* ru_thread_prach( void* param ) {
|
|||||||
NULL,
|
NULL,
|
||||||
proc->frame_prach,
|
proc->frame_prach,
|
||||||
0
|
0
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
,0
|
,0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@@ -1612,7 +1612,7 @@ void init_RU_proc(RU_t *ru) {
|
|||||||
RU_proc_t *proc;
|
RU_proc_t *proc;
|
||||||
pthread_attr_t *attr_FH=NULL,*attr_prach=NULL,*attr_asynch=NULL;// *attr_synch=NULL;
|
pthread_attr_t *attr_FH=NULL,*attr_prach=NULL,*attr_asynch=NULL;// *attr_synch=NULL;
|
||||||
//pthread_attr_t *attr_fep=NULL;
|
//pthread_attr_t *attr_fep=NULL;
|
||||||
#ifdef Rel14
|
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
//pthread_attr_t *attr_prach_br=NULL;
|
//pthread_attr_t *attr_prach_br=NULL;
|
||||||
#endif
|
#endif
|
||||||
char name[100];
|
char name[100];
|
||||||
|
|||||||
Reference in New Issue
Block a user